If login is invoked without an argument, it asks for a user name, and, if appropriate, a password. Echoing is turned off (if possible) during the typing of the password, so it will not appear on the written record of the session.
After a successful login, accounting files are updated and the user is informed of the existence of mail. The message of the day is printed, as is the time of his last login. Both are suppressed if he has a ``.hushlogin'' file in his home directory; this is mostly used to make life easier for non-human users, such as uucp.
Login initializes the user and group IDs and the working directory, then executes a command interpreter (usually csh(1)) according to specifications found in a password file. Argument 0 of the command interpreter is the name of the command interpreter with a leading dash (``-'').
Login also modifies the environment environ(7) with information specifying home directory, command interpreter, terminal type (if available) and user name. The `-p' argument causes the remainder of the environment to be preserved, otherwise any previous environment is discarded.
If the file /etc/nologin exists, login prints its contents on the user's terminal and exits. This is used by shutdown(8) to stop users logging in when the system is about to go down.
Login is recognized by sh(1) and csh(1) and executed directly (without forking).